    <template>
        <template v-for="(item, index) in props.menuData">
            <!-- 判断没有子菜单的情况 -->
            <el-menu-item @click="handleClick(item, `${props.index}-${item.meta.id}`)"
                v-if="!item.children || item.children.length == 0" :index="`${props.index}-${item.meta.id}`"
                :key="`${props.index}-${item.meta.id}`">
                <el-icon size="20">
                    <!-- 动态组件 -->
                    <component :is="item.meta.icon"></component>
                </el-icon>
                <span>{{ item.meta.name }}</span>
            </el-menu-item>
            <!-- 判断有子菜单的情况 -->
            <el-sub-menu v-else :index="`${props.index}-${item.meta.id}`">
                <template #title>
                    <el-icon size="20">
                        <!-- 动态组件 -->
                        <component :is="item.meta.icon"></component>
                    </el-icon>
                    <span>{{ item.meta.name }}</span>
                </template>
                <tree-menu :index="`${props.index}-${item.meta.id}`" :menuData="item.children" />
            </el-sub-menu>
        </template>
    </template>
<script setup>
import { useRouter } from 'vue-router'
import { useStore } from 'vuex'

const props = defineProps(['menuData', 'index'])
const store = useStore()

const router = useRouter()
// 定义点击事件
const handleClick = (item, active) => {
    console.log(item, 'item')
    router.push(item.meta.path)
    // 使用store
    store.commit('addMenu', item.meta)
    store.commit('updateMenuActive',active)
}
</script>

<style lang="less" scoped></style>